home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / gfront11.lha / GUIFront / Demos / Source / system.c < prev    next >
C/C++ Source or Header  |  1994-11-01  |  6KB  |  159 lines

  1.  
  2. /* System.c - The GUI of the 'System' window of Spot
  3.  *
  4.  * This is a GUIFront example GUI. To build an example, compile and link this
  5.  * file with Generic.o (also supplied).
  6.  * Everything prefixed with DEMO_ is exported to Generic.o.
  7.  */
  8.  
  9. #include <libraries/guifront.h>
  10.  
  11. /* First, some Gadget ID's */
  12.  
  13. enum
  14. {
  15.     GID_NAME,
  16.     GID_ADDRESS,
  17.     GID_ADD,
  18.     GID_DELETE,
  19.     GID_FAKENET,
  20.     GID_DOMAIN,
  21.     GID_DOMAININMSGID,
  22.     GID_DOMAININORIGIN,
  23.     GID_BBSNAME,
  24.     GID_PACKER,
  25.     GID_UNPACKER,
  26.     GID_PACKNETMAIL,
  27.     GID_POLL,
  28.     GID_ASYNC,
  29.     GID_PASSWORD,
  30.     GID_EXPORTTO,
  31.     GID_FORCEINTL,
  32. };
  33.  
  34. /* Some data and tag items we'll be needing later */
  35.  
  36. extern struct MinList addrlistlabels;
  37.  
  38. static struct Node addrlistnodes[] =
  39. {
  40.     {&addrlistnodes[1], (struct Node *)&addrlistlabels.mlh_Head, 0, 0, "1:111/111.1"},
  41.     {&addrlistnodes[2], &addrlistnodes[0], 0, 0, "2:222/222.2"},
  42.     {&addrlistnodes[3], &addrlistnodes[1], 0, 0, "3:333/333.3"},
  43.     {&addrlistnodes[4], &addrlistnodes[2], 0, 0, "4:444/444.4"},
  44.     {&addrlistnodes[5], &addrlistnodes[3], 0, 0, "5:555/555.5"},
  45.     {(struct Node *)&addrlistlabels.mlh_Tail, &addrlistnodes[4], 0, 0, "6:666/666.7"},
  46. };
  47.  
  48. struct MinList addrlistlabels =
  49. {
  50.     (struct MinNode *)&addrlistnodes[0], NULL,(struct MinNode *)&addrlistnodes[5]
  51. };
  52.  
  53. static const struct TagItem addrlisttags[] =
  54. {
  55.     {GTLV_ShowSelected, NULL},
  56.     {GTLV_Labels, &addrlistlabels},
  57.     {TAG_DONE},
  58. };
  59.  
  60. /* Now, the GadgetSpec's we'll be needing for this GUI */
  61.  
  62. static GadgetSpec gadgetspecs[] =
  63. {
  64.     {STRING_KIND,  20,0, {0,0,0,0,"_Name",NULL,GID_NAME,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  65.     {LISTVIEW_KIND,20,4, {0,0,0,0,"Address", NULL, GID_ADDRESS, PLACETEXT_LEFT}, addrlisttags, GS_DefaultTags},
  66.     {BUTTON_KIND,   0,0, {0,0,0,0,"_Add...", NULL, GID_ADD, PLACETEXT_IN}, NULL, GS_DefaultTags},
  67.     {BUTTON_KIND,   0,0, {0,0,0,0,"_Delete...", NULL, GID_DELETE, PLACETEXT_IN}, NULL, GS_DefaultTags},
  68.     {STRING_KIND,   0,0, {0,0,0,0,"_Fakenet",NULL,GID_FAKENET,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  69.     {STRING_KIND,   0,0, {0,0,0,0,"Doma_in",NULL,GID_DOMAIN,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  70.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"Domain in _MSGID",NULL,GID_DOMAININMSGID,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  71.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"Domain in _origin",NULL,GID_DOMAININORIGIN,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  72.     {STRING_KIND,  20,0, {0,0,0,0,"_BBS Name",NULL,GID_BBSNAME,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  73.     {STRING_KIND,   0,0, {0,0,0,0,"Pa_cker",NULL,GID_PACKER,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  74.     {STRING_KIND,   0,0, {0,0,0,0,"_Unpacker",NULL,GID_UNPACKER,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  75.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"Pac_k netmail",NULL,GID_PACKNETMAIL,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  76.     {STRING_KIND,   0,0, {0,0,0,0,"_Poll",NULL,GID_POLL,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  77.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"A_synchronous",NULL,GID_ASYNC,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  78.     {STRING_KIND,   0,0, {0,0,0,0,"Pass_word",NULL,GID_PASSWORD,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  79.     {STRING_KIND,   0,0, {0,0,0,0,"E_xport to",NULL,GID_EXPORTTO,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  80.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"Fo_rce INTL",NULL,GID_FORCEINTL,PLACETEXT_LEFT},NULL,GS_DefaultTags},
  81. };
  82.  
  83. /* Now, we group all of these GadgetSpecs into an array of pointers, so the
  84.  * layout engine can locate gadgets merely by their Gadget IDs.
  85.  */
  86.  
  87. GadgetSpec *DEMO_GadgetSpecList[] =
  88. {
  89.     &gadgetspecs[0], &gadgetspecs[1], &gadgetspecs[2], &gadgetspecs[2],
  90.     &gadgetspecs[3], &gadgetspecs[4], &gadgetspecs[5], &gadgetspecs[6],
  91.     &gadgetspecs[7], &gadgetspecs[8], &gadgetspecs[9], &gadgetspecs[10],
  92.     &gadgetspecs[11], &gadgetspecs[12], &gadgetspecs[13], &gadgetspecs[14],
  93.     &gadgetspecs[15], &gadgetspecs[16], NULL,
  94. };
  95.  
  96. /* Finally, the layout tag list itself. This is where most of the work is
  97.  * done. This list completely describes how the above gadgets are arranged
  98.  * in groups in the GUI.
  99.  */
  100.  
  101. ULONG DEMO_LayoutList[] =
  102. {
  103.     GUIL_Flags, GUILF_PropShare,
  104.  
  105.     GUIL_VertGroup, 1,
  106.         GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth | GUILF_LabelAlign,
  107.  
  108.         GUIL_GadgetSpecID, GID_NAME,
  109.  
  110.         GUIL_GadgetSpecID, GID_ADDRESS,
  111.  
  112.         GUIL_HorizGroup, 0,
  113.             GUIL_Flags, GUILF_EqualShare | GUILF_EqualHeight,
  114.             GUIL_GadgetSpecID, GID_ADD,
  115.             GUIL_GadgetSpecID, GID_DELETE,
  116.         TAG_DONE,
  117.  
  118.         GUIL_GadgetSpecID, GID_FAKENET,
  119.         GUIL_GadgetSpecID, GID_DOMAIN,
  120.  
  121.         GUIL_GadgetSpecID, GID_DOMAININMSGID,
  122.         GUIL_GadgetSpecID, GID_DOMAININORIGIN,
  123.     TAG_DONE,
  124.  
  125.     GUIL_VertGroup, 1,
  126.         GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth | GUILF_LabelAlign,
  127.  
  128.         GUIL_GadgetSpecID, GID_BBSNAME,
  129.         GUIL_GadgetSpecID, GID_PACKER,
  130.         GUIL_GadgetSpecID, GID_UNPACKER,
  131.         GUIL_GadgetSpecID, GID_PACKNETMAIL,
  132.         GUIL_GadgetSpecID, GID_POLL,
  133.         GUIL_GadgetSpecID, GID_ASYNC,
  134.         GUIL_GadgetSpecID, GID_PASSWORD,
  135.         GUIL_GadgetSpecID, GID_EXPORTTO,
  136.         GUIL_GadgetSpecID, GID_FORCEINTL,
  137.     TAG_DONE,
  138.  
  139.     TAG_DONE,
  140. };
  141.  
  142. /* Obligatory version tag */
  143.  
  144. static const char ver[] = "$VER: System 1.0 " __AMIGADATE__;
  145.  
  146. /* Now, some globals used by Generic.o during the call to GF_CreateGUIA() */
  147.  
  148. int DEMO_InitialOrientation = GUIL_HorizGroup;
  149.  
  150. STRPTR DEMO_WindowTitle = "Spot/System GUI";
  151. STRPTR DEMO_AppID       = "Spot.System";
  152.  
  153. STRPTR DEMO_Version     = "1.0",
  154.        DEMO_LongDesc    = "Demo program - The 'System' GUI of Spot",
  155.        DEMO_Author      = "Michael Berg",
  156.        DEMO_Date        = __AMIGADATE__;
  157.  
  158. BOOL   DEMO_Backfill    = FALSE;
  159.